#include <head.h>

sem_t sem;

void *Func_pthread(void * arg)
{
    int id = *((int *)arg);

    printf("我是 %d 车 我已经就绪\n", id);

    sleep(1);

    sem_wait(&sem);

    printf("我是%d 车 我停车\n", id);

    sleep(5);

    sem_post(&sem);
    printf("我是 %d 车 完成停车\n",id);
}


int main(int argc, char const *argv[])
{
    sem_init(&sem , 0 ,5);

    pthread_t tid[20];
    int id[20];

    for (size_t i = 0; i < 20; i++)
    {
        id[i] = i;

        pthread_create(&tid[i] , NULL , Func_pthread , (void *)&id[i]);

        pthread_detach(tid[i]);
    }
    
    getc(stdin);

    sem_destroy(&sem);

    printf("回收完成");
    
    return 0;
}